﻿using Authentication.Model.Model;
using Common.Contract.Authentication.Record;
using Common.Contract.Paging;
using Common.Contract.SystemConfig.Record;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Authentication.Model.Interface
{
    public interface IRequestDaoProvider
    {
        bool SaveDaoRequest(CreateDaoRequest userQuestion);
        bool SaveListCreateDaoRequest(List<CreateDaoRequest> listCreateDaoRequest);
        CreateDaoRequest RetrieveRequestByRequestId(int requestId, UserRecord currentUser);
        List<CreateDaoRequest> RetrieveListCreateDaoRequest(out int totalRecord, UserRecord currentUser, FilterRecord textSearch = null, int pagesize = 0, int pageindex = 0, SortRecord sortRecord = null);

        bool UpdateStatusRequestCreateDao(CreateDaoRequest checkUser);
        bool UpdateOfferLetter(CreateDaoRequest request);
        bool UpdateRejectReason(CreateDaoRequest request);

        bool UpdateStatusListCreateDaoRequest(int[] listId, int status);
        bool UpdateListResultCreateDaoRequest(List<CreateDaoRequest> listCreateDaoRequest);
    }
}
